A network device, such as a router or a switch, may use a control plane and a forwarding plane to control and exchange data within a network or between different networks. The control plane may generate and maintain a routing table that lists routes that may be used to forward data. For example, the routing table may include information identifying static routes or routes obtained through a dynamic routing protocol. When data is received by the network device, the forwarding plane may use a forwarding table to identify an available path and may forward the data via the identified path. The forwarding table may include information that associates a flow with the path so that additional data from the flow may also be routed via the same path.
In software-defined networking (SDN), network administrators can manage network services through abstraction of lower-level functionality to separate the control plane from the physical network. In SDN, control plane devices communicate with forwarding plane devices to direct flows, and the control plane devices may dynamically generate instructions for handing network traffic. For example, the instructions may control how network devices route traffic, prioritize different traffic, translate traffic between network protocols, etc.